﻿using System.Collections.Generic;

namespace Mbs.Elements
{
    /// <summary>
    /// 元素映射职责库接口
    /// </summary>
    public interface IElementMapRepository : IEnumerable<KeyValuePair<object, IElement>>
    {
        /// <summary>
        /// 注册桥接元素和UI元素之间的映射关系
        /// </summary>
        /// <param name="uiElement">UI元素</param>
        /// <returns>返回桥接元素</returns>
        /// <remarks>
        /// 注册流程：
        /// 1. 根据UI元素类型从桥接元素工厂职责库<see cref="IElementFactoryRepository"/>中得到factory
        /// 2. IElement e = factory.Create(uiElement);
        /// 3. 建立桥接元素和UI元素之间的映射关系
        /// </remarks>
        IElement Register(object uiElement);

        /// <summary>
        /// 清空所有的映射关系
        /// </summary>
        void Clear();
    }
}